package com.own.business.push.core.base;

import com.own.business.push.core.model.MessagePushContentModel;

import java.util.Collections;
import java.util.List;

/**
 * BasePushClientMethod
 *
 * @author chenxueli
 * @date 2023-11-15 10:57:00
 */
public interface BasePushClientMethod {

    /**
     * 全量推送
     *
     * @param contentModel 内容
     */
    void all(MessagePushContentModel contentModel);

    /**
     * 注册id推送
     *
     * @param regId        注册id列表
     * @param contentModel 内容
     */
    default void regId(String regId, MessagePushContentModel contentModel) {
        regId(Collections.singletonList(regId), contentModel);
    }

    /**
     * 注册id推送
     *
     * @param regIdList    注册id列表
     * @param contentModel 内容
     */
    void regId(List<String> regIdList, MessagePushContentModel contentModel);

    /**
     * 别名推送信息
     *
     * @param alias        别名
     * @param contentModel 内容
     */
    default void alias(String alias, MessagePushContentModel contentModel) {
        alias(Collections.singletonList(alias), contentModel);
    }

    /**
     * 别名推送信息
     *
     * @param aliasList    别名列表
     * @param contentModel 内容
     */
    void alias(List<String> aliasList, MessagePushContentModel contentModel);

    /**
     * 推送发送的名称
     *
     * @return 名称
     */
    String name();

}
